
/*
ListaNodo.java
Autor: Luis Antonio Sigüenza Leiva
Carné: 10297
Fecha: 23 de Agosto del 2011
*/

public class ListaNodo<E> extends AbstractStack<E>{
    
    //Atributos de la clase ListaNodo<E>
    public Nodo<E> primero;
    protected int contador;
   
    //Método constructor (predefinido) incializa el estado de los objetos
   public ListaNodo(){
        //this.elemento= elemento;
        primero=null;
        contador=0;
    }   
    
   //Método que devuelve el numero de elementos de la lista
    @Override
   public int size() {
        return contador;
    }
   
    //Método que agrega un elemento a la lista
    @Override
    public void push(E value) {
        primero = new Nodo<E>(value, primero);
        contador++;
    }

    //Método que elimina el primer elemento de la lista
    @Override
    public E pop(){
        {Nodo<E> temp = primero;
        primero = primero.next(); // move head down list
        contador--;
        return temp.value();
    }}
    
    //Método que devuelve el ultimo valor agregado a la lista
    @Override
    public E peek() {
        throw new UnsupportedOperationException("Not supported yet.");
  
    }
    
}
